package com.tbit.main.dao.core;

import com.tbit.main.pojo.MachineFault;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 故障
 *
 * @author Leon
 * 2019年11月16日 下午2:51:12
 */
public interface MachineFaultDao {

    /**
     * 根据设备id查询
     *
     * @param machineId
     * @return
     */
    MachineFault getByMachineId(Integer machineId);

    /**
     * 根据设备 ids 查询
     * @param machineIds 设备 ids
     * @return 设备故障信息
     */
    List<MachineFault> selectByMachineIds(String machineIds);

    /**
     * 添加
     *
     * @param machineFault
     */
    void insert(MachineFault machineFault);

    /***
     * 更新
     * @param machineFault
     */
    void update(MachineFault machineFault);

    /**
     * 删除
     *
     * @param machineId
     */
    void del(Integer machineId);

    /**
     * 根据代理商id查询
     *
     * @param accountId
     * @return
     */
    List<MachineFault> getByAccountId(Integer accountId);

    /**
     * 根据运营区域批量查询
     *
     * @param params
     * @return
     */
    List<MachineFault> getByAccountIds(Map<String, Object> params);

    /**
     * 根据代理商id查询
     *
     * @param regionId
     * @return
     */
    List<MachineFault> getByRegionId(@Param("regionId") String regionId);

    /**
     * 根据车辆id
     *
     * @param machineId
     * @return
     */
    String getImageByMahineId(Integer machineId);

    /**
     * 获取运营区域内的故障车辆数
     *
     * @return
     */
    List<Map<String, Object>> getGroupByAccountId();

    /**
     * 根据运营区域和来源查询
     *
     * @param map
     * @return
     */
    Integer getByAccountIdType(Map<String, Object> map);

    /**
     * 根据设备id查询
     *
     * @param map
     * @return
     */
    List<Integer> getExist(Map<String, Object> map);

    List<MachineFault> getMachineFaultUser(Map<String, Object> map);

    /**
     * 清除故障状态
     *
     * @param machineIdList 车辆id集合
     */
    void batchClearMachineFaultById(@Param("machineIdList") List<Integer> machineIdList);
}
